object Version {
    const val MYBATIS_PLUS = "3.5.1"
    const val GUAVA = "29.0-jre"
    const val FAST_JSON = "1.2.76"
    const val JACKSON = "2.12.5"
    const val DOM4J = "2.1.3"
    const val LOG4J2 = "2.15.0"
    const val LOGBACK = "1.2.7"
    const val SLF4J = "1.7.32"
    const val BCPROV = "1.46"
    const val COMMONS_CODEC = "1.15"
    const val COMMONS_LANG_3 = "3.12.0"
    const val REACTOR = "3.4.8"
}

object Library {
    const val MYBATIS_PLUS_ANNOTATION = "com.baomidou:mybatis-plus-annotation:${Version.MYBATIS_PLUS}"
    const val MYBATIS_PLUS_EXTENSION = "com.baomidou:mybatis-plus-extension:${Version.MYBATIS_PLUS}"
    const val GUAVA = "com.google.guava:guava:${Version.GUAVA}"
    const val FAST_JSON = "com.alibaba:fastjson:${Version.FAST_JSON}"
    const val LOG4J2 = "org.apache.logging.log4j:log4j-core:${Version.LOG4J2}"
    const val LOG4J2_SLF4J = "org.apache.logging.log4j:log4j-slf4j-impl:${Version.LOG4J2}"

    const val LOGBACK_CORE = "ch.qos.logback:logback-core:${Version.LOGBACK}"
    const val LOGBACK_CLASSIC = "ch.qos.logback:logback-classic:${Version.LOGBACK}"
    const val SLF4J = "org.slf4j:slf4j-api:${Version.LOGBACK}"

    const val COMMONS_CODEC = "commons-codec:commons-codec:${Version.COMMONS_CODEC}"
    const val COMMONS_LANG_3 = "org.apache.commons:commons-lang3:${Version.COMMONS_LANG_3}"

    /**
     * 这个包是用来提供加密算法支持的，具体是啥忘了，反正要有
     * */
    const val BCPROV = "org.bouncycastle:bcprov-jdk16:${Version.BCPROV}"


    /**
     * jackson的包
     * databind依赖了core和annotations
     * 所以依赖了databind就不用显式的依赖core和annotations了
     * */
    const val JACKSON_DATABIND = "com.fasterxml.jackson.core:jackson-databind:${Version.JACKSON}"
    const val JACKSON_CORE = "com.fasterxml.jackson.core:jackson-core:${Version.JACKSON}"
    const val JACKSON_ANNOTATIONS = "com.fasterxml.jackson.core:jackson-annotations:${Version.JACKSON}"

    /**
     * 序列化/反序列化java的LocalDateTime等日期类，要用jackson的这个扩展包
     * */
    const val JACKSON_DATATYPE_JSR310 = "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:${Version.JACKSON}"

    const val DOM4J = "org.dom4j:dom4j:${Version.DOM4J}"

    /**
     * https://mvnrepository.com/artifact/io.projectreactor/reactor-core
     * */
    const val REACTOR = "io.projectreactor:reactor-core:${Version.REACTOR}"

}